using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("CollectionNewDeckButton")]
	public class CollectionNewDeckButton : PegUIElement
	{
		[Attribute38("CollectionNewDeckButton.OnPopAnimationFinishedCallbackData")]
		public class OnPopAnimationFinishedCallbackData : MonoClass
		{
			public string m_animationName => method_4("m_animationName");

			public object m_callbackData => method_3<object>("m_callbackData");

			public OnPopAnimationFinishedCallbackData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public OnPopAnimationFinishedCallbackData(IntPtr address)
				: this(address, "OnPopAnimationFinishedCallbackData")
			{
			}
		}

		public HighlightState m_highlightState => method_3<HighlightState>("m_highlightState");

		public UberText m_buttonText => method_3<UberText>("m_buttonText");

		public static float BUTTON_POP_SPEED => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "CollectionNewDeckButton", "BUTTON_POP_SPEED");

		public string DECKBOX_POPUP_ANIM_NAME => method_4("DECKBOX_POPUP_ANIM_NAME");

		public string DECKBOX_POPDOWN_ANIM_NAME => method_4("DECKBOX_POPDOWN_ANIM_NAME");

		public bool m_isPoppedUp => method_2<bool>("m_isPoppedUp");

		public bool m_isUsable => method_2<bool>("m_isUsable");

		public CollectionNewDeckButton(IntPtr address, string className)
			: base(address, className)
		{
		}

		public CollectionNewDeckButton(IntPtr address)
			: this(address, "CollectionNewDeckButton")
		{
		}

		public new void Awake()
		{
			method_8("Awake");
		}

		public void SetIsUsable(bool isUsable)
		{
			method_8("SetIsUsable", isUsable);
		}

		public bool IsUsable()
		{
			return method_11<bool>("IsUsable", Array.Empty<object>());
		}

		public void PlayPopUpAnimation()
		{
			method_9("PlayPopUpAnimation", new Class276.Enum20[0]);
		}

		public void PlayPopDownAnimation()
		{
			method_9("PlayPopDownAnimation", new Class276.Enum20[0]);
		}

		public bool IsPoppedUp()
		{
			return method_11<bool>("IsPoppedUp", Array.Empty<object>());
		}

		public void PlayAnimation(string animationName)
		{
			method_9("PlayAnimation", new Class276.Enum20[1] { Class276.Enum20.String }, animationName);
		}

		public new void OnOver(InteractionState oldState)
		{
			method_8("OnOver", oldState);
		}

		public new void OnOut(InteractionState oldState)
		{
			method_8("OnOut", oldState);
		}
	}
}
